#pragma once

#include "Platform.h"
#include "BuildType.h"

# if defined(GLIMMER_PLATFORM_WINDOWS)
        #include <crtdbg.h>
        #define GLIMMER_ASSERT_IMPL(EXPR)   _ASSERTE(EXPR)
# elif defined(GLIMMER_MACOS)
        # include <assert.h>
        #define GLIMMER_ASSERT_IMPL(EXPR)      assert(EXPR)
# else
# endif

# if defined(GLIMMER_DEBUG)
        #define GLIMMER_ASSERT(EXPR)    GLIMMER_ASSERT_IMPL(EXPR)
# elif defined(GLIMMER_RELEASE)
        #define GLIMMER_ASSERT(EXPR)    ((void)0)
# else
        #define GLIMMER_ASSERT(EXPR)    ((void)0)
# endif